library(reticulate)
use_condaenv("glmhmm")

source_python("python/glm_hmm.py")
import numpy as np
import numpy.random as npr
import matplotlib.pyplot as plt
import ssm 

quit
library(tidyverse)
library(broom)
library(dplyr)
library(R.matlab)
library(cowplot)

list.files("R", full.names = TRUE) |> 
  walk(source)
load("RData/glm_hmm1_seeds.RData")
load("RData/glm_hmm2_seeds.RData")
load("RData/glm_hmm3_seeds.RData")

Renames the states according to their values (so similar states between subjects can be identified)

# glm_hmm1 <- glm_hmm1_seeds %>% 
#     mutate(fit = list(glm_hmm_extract_best(fit))) %>%
#     order_states_glm_hmm()
# 
# glm_hmm1
# 
# save(glm_hmm1, file = "RData/glm_hmm1.RData")
# glm_hmm2 <- glm_hmm2_seeds %>% 
#   mutate(fit = list(glm_hmm_extract_best(fit))) %>%
#   order_states_glm_hmm()
# 
# glm_hmm2
# 
# save(glm_hmm2, file = "RData/glm_hmm2.RData")
# glm_hmm3 <- glm_hmm3_seeds %>%
#   mutate(fit = list(glm_hmm_extract_best(fit))) %>%
#   order_states_glm_hmm()
# 
# glm_hmm3
# 
# save(glm_hmm3, file = "RData/glm_hmm3.RData")
glm_hmm4 <- glm_hmm4_seeds %>%
  mutate(fit = list(glm_hmm_extract_best(fit))) %>%
  order_states_glm_hmm()
Joining with `by = join_by(subject, state)`
load("RData/glm_hmm1.RData")
load("RData/glm_hmm2.RData")
load("RData/glm_hmm3.RData")

———————————————————————

MODEL COMPARISON


liks de cada modelo

DL:

LS0tCnRpdGxlOiAiaGxtaG1tIG1ldGFjb2duaXRpb24gc2VlZCBzZWxlY3Rpb24gYW5kIG1vZGVsIGNvbXBhcmlzb24iCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCgpgYGB7cn0KbGlicmFyeShyZXRpY3VsYXRlKQp1c2VfY29uZGFlbnYoImdsbWhtbSIpCgpzb3VyY2VfcHl0aG9uKCJweXRob24vZ2xtX2htbS5weSIpCmBgYAoKYGBge3B5dGhvbn0KaW1wb3J0IG51bXB5IGFzIG5wCmltcG9ydCBudW1weS5yYW5kb20gYXMgbnByCmltcG9ydCBtYXRwbG90bGliLnB5cGxvdCBhcyBwbHQKaW1wb3J0IHNzbSAKYGBgCgpgYGB7cn0KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoYnJvb20pCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkoUi5tYXRsYWIpCmxpYnJhcnkoY293cGxvdCkKCmxpc3QuZmlsZXMoIlIiLCBmdWxsLm5hbWVzID0gVFJVRSkgfD4gCiAgd2Fsayhzb3VyY2UpCmBgYAoKCmBgYHtyfQpsb2FkKCJSRGF0YS9nbG1faG1tMV9zZWVkcy5SRGF0YSIpCmxvYWQoIlJEYXRhL2dsbV9obW0yX3NlZWRzLlJEYXRhIikKbG9hZCgiUkRhdGEvZ2xtX2htbTNfc2VlZHMuUkRhdGEiKQpgYGAKCgpSZW5hbWVzIHRoZSBzdGF0ZXMgYWNjb3JkaW5nIHRvIHRoZWlyIHZhbHVlcyAoc28gc2ltaWxhciBzdGF0ZXMgYmV0d2VlbiBzdWJqZWN0cyBjYW4gYmUgaWRlbnRpZmllZCkKYGBge3J9CiMgZ2xtX2htbTEgPC0gZ2xtX2htbTFfc2VlZHMgJT4lIAojICAgICBtdXRhdGUoZml0ID0gbGlzdChnbG1faG1tX2V4dHJhY3RfYmVzdChmaXQpKSkgJT4lCiMgICAgIG9yZGVyX3N0YXRlc19nbG1faG1tKCkKIyAKIyBnbG1faG1tMQojIAojIHNhdmUoZ2xtX2htbTEsIGZpbGUgPSAiUkRhdGEvZ2xtX2htbTEuUkRhdGEiKQpgYGAKCmBgYHtyfQojIGdsbV9obW0yIDwtIGdsbV9obW0yX3NlZWRzICU+JSAKIyAgIG11dGF0ZShmaXQgPSBsaXN0KGdsbV9obW1fZXh0cmFjdF9iZXN0KGZpdCkpKSAlPiUKIyAgIG9yZGVyX3N0YXRlc19nbG1faG1tKCkKIyAKIyBnbG1faG1tMgojIAojIHNhdmUoZ2xtX2htbTIsIGZpbGUgPSAiUkRhdGEvZ2xtX2htbTIuUkRhdGEiKQpgYGAKCmBgYHtyfQojIGdsbV9obW0zIDwtIGdsbV9obW0zX3NlZWRzICU+JQojICAgbXV0YXRlKGZpdCA9IGxpc3QoZ2xtX2htbV9leHRyYWN0X2Jlc3QoZml0KSkpICU+JQojICAgb3JkZXJfc3RhdGVzX2dsbV9obW0oKQojIAojIGdsbV9obW0zCiMgCiMgc2F2ZShnbG1faG1tMywgZmlsZSA9ICJSRGF0YS9nbG1faG1tMy5SRGF0YSIpCmBgYAoKYGBge3J9CiMgZ2xtX2htbTQgPC0gZ2xtX2htbTRfc2VlZHMgJT4lCiMgICBtdXRhdGUoZml0ID0gbGlzdChnbG1faG1tX2V4dHJhY3RfYmVzdChmaXQpKSkgJT4lCiMgICBvcmRlcl9zdGF0ZXNfZ2xtX2htbSgpCiMgCiMgZ2xtX2htbTQKIyAKIyBzYXZlKGdsbV9obW00LCBmaWxlID0gIlJEYXRhL2dsbV9obW00LlJEYXRhIikKYGBgCgpgYGB7cn0KbG9hZCgiUkRhdGEvZ2xtX2htbTEuUkRhdGEiKQpsb2FkKCJSRGF0YS9nbG1faG1tMi5SRGF0YSIpCmxvYWQoIlJEYXRhL2dsbV9obW0zLlJEYXRhIikKbG9hZCgiUkRhdGEvZ2xtX2htbTQuUkRhdGEiKQpgYGAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk1PREVMIENPTVBBUklTT04gCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpsaWtzIGRlIGNhZGEgbW9kZWxvCmBgYHtyfQpsaWtzX2dsbV9obW0xIDwtIGdsbV9obW0xX3NlZWRzICU+JSAKICBtdXRhdGUoZml0ID0gbGlzdChnbG1faG1tX2V4dHJhY3RfYmVzdChmaXQpKSkgJT4lIAogIHVubmVzdF93aWRlcihmaXQpICU+JSAKICBtdXRhdGUobiA9IG1hcChkYXRhLCBjb3VudCkpICU+JSAKICB1bm5lc3QobikgJT4lIAogIHNlbGVjdChzdWJqZWN0LCBsb2dfbGlrLCBuX3BhciwgbikgJT4lIAogIG11dGF0ZShtb2RlbCA9ICJpbnQtc2xvIDEiKQoKbGlrc19nbG1faG1tMiA8LSBnbG1faG1tMl9zZWVkcyAlPiUgCiAgbXV0YXRlKGZpdCA9IGxpc3QoZ2xtX2htbV9leHRyYWN0X2Jlc3QoZml0KSkpICU+JSAKICB1bm5lc3Rfd2lkZXIoZml0KSAlPiUgCiAgbXV0YXRlKG4gPSBtYXAoZGF0YSwgY291bnQpKSAlPiUgCiAgdW5uZXN0KG4pICU+JSAKICBzZWxlY3Qoc3ViamVjdCwgbG9nX2xpaywgbl9wYXIsIG4pICU+JSAKICBtdXRhdGUobW9kZWwgPSAiaW50LXNsbyAyIikKCmxpa3NfZ2xtX2htbTMgPC0gZ2xtX2htbTNfc2VlZHMgJT4lCiAgbXV0YXRlKGZpdCA9IGxpc3QoZ2xtX2htbV9leHRyYWN0X2Jlc3QoZml0KSkpICU+JQogIHVubmVzdF93aWRlcihmaXQpICU+JQogIG11dGF0ZShuID0gbWFwKGRhdGEsIGNvdW50KSkgJT4lCiAgdW5uZXN0KG4pICU+JQogIHNlbGVjdChzdWJqZWN0LCBsb2dfbGlrLCBuX3BhciwgbikgJT4lCiAgbXV0YXRlKG1vZGVsID0gImludC1zbG8gMyIpCmBgYAoKREw6CmBgYHtyfQpsaWtzX2dsbV9obW0gPC0gbGlrc19nbG1faG1tMSB8PiAKICBiaW5kX3Jvd3MobGlrc19nbG1faG1tMikgfD4gCiAgYmluZF9yb3dzKGxpa3NfZ2xtX2htbTMpIHw+IAogIG11dGF0ZShhaWMgPSAtMiAqIGxvZ19saWsgKyAyICpuX3BhcikKCnNhdmUobGlrc19nbG1faG1tLCBmaWxlID0gIlJEYXRhL2xpa3NfZ2xtX2htbS5SRGF0YSIpCgpsaWtzX2dsbV9obW1fYmVzdCA8LSBsaWtzX2dsbV9obW0gfD4gCiAgZ3JvdXBfYnkoc3ViamVjdCkgfD4gCiAgZmlsdGVyKGFpYyA9PSBtaW4oYWljKSkgCgpsaWtzX2dsbV9obW1fYmVzdCB8PiAKICB1bmdyb3VwKCkgfD4gCiAgY291bnQobW9kZWwpCgpzYXZlKGxpa3NfZ2xtX2htbV9iZXN0LCBmaWxlID0gIlJEYXRhL2xpa3NfZ2xtX2htbV9iZXN0LlJEYXRhIikKYGBgCgo=